﻿
namespace SourceGenerator.AOP
{
    [GeneratorAopProxy]
    public partial class TestViewModel
    {
        public TestViewModel()
        {
        }

        //标记了这个特性之后，SourceGenertor会自动在对应的partial类中生成代理方法，就像在构造函数中那样直接使用
        [testAOP(Location = InvokeLocation.Both)]
        public string Method1(string asd)
        {
            Console.WriteLine(asd);
            Method2_Proxy(asd);
            return asd + "Method1";
        }

        [testAOP(Location = InvokeLocation.Both)]
        public string Method2(string asd)
        {
            Console.WriteLine(asd);
            return asd + "Method2";
        }

        [testAOP(Location = InvokeLocation.Before)]
        public void testAOP(string a, int b, decimal c)
        {

        }
    }
}

